<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: Metrics</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="metrics">
<meta name="uma.presentationName" content="Metrics">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_0mYYkMlgEdmt3adZL5Dmdw"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: Metrics</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">A metric is used to interpret measurements so that team members and stakeholders can know the state of the project.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../practice.mgmt.iterative_dev.base/tasks/manage_iteration_E4D93A64.html" guid="_8S2aICbYEdqh1LYUOGRh2A">Manage Iteration</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><h3>
    <font size="5">What is a Metric?</font>
</h3>
<p>
    We distinguish between measure and metric. To clarify, let's start by defining what is meant by measure and by metric.
</p>
<ul>
    <li>
        <b>Measure</b>: A raw data item that is directly measured, and that will be used to calculate a metric.
    </li>
    <li>
        <b>Metric</b>: An interpretation of a measure or a set of measures that you use to guide your project. For example,
        recording how many test cases have passed and how many have failed are measures. Interpreting what level of quality
        this indicates and how it reflects the team's progress within the current iteration is a metric.
    </li>
</ul>
<h3>
    <font size="5">Why Measure?</font>
</h3>
<p>
    Measurements will mainly help you to:
</p>
<ul>
    <li>
        <b>Communicate effectively</b>. Measurement supports effective communication among team members and project
        stakeholders.
    </li>
    <li>
        <b>Identify and correct problems early</b>. Measurement enables you to identify and manage potential problems early
        in the development lifecycle.
    </li>
    <li>
        <b>Make informed trade-offs</b>. Measurement helps objectively assess the impact of decisions, helping&nbsp;the
        team&nbsp;make trade-off decisions to best meet project goals.
    </li>
    <li>
        <b>Tune estimations</b>. Recording schedule, progress, and expenditures for projects will help team members to make
        more reliable estimations in the future.
    </li>
</ul>
<h3>
    <font size="5">Potential Challenges</font>
</h3>
<p>
    There are several dangers when it comes to metrics:
</p>
<ul>
    <li>
        <div align="left">
            <b>They can be too costly</b>. The benefit provided by the metric must exceed the cost of collecting it. Keep
            your measurements simple and easy to collect.
        </div>
    </li>
    <li>
        <div align="left">
            <b>They're a poor substitute for communication</b>. Do not use metrics as a substitute for communication. Team
            members may help to decide which metrics make sense for the project. Apply metrics not so much to control the
            project but to help team to collaborate better. Asking people about their progress is a co-dependent way of
            gaining insight into progress.
        </div>
    </li>
    <li>
        <div align="left">
            <b>They can be misleading</b>. No metric or collection of metrics is perfect. Furthermore, the measurements
            upon which they are based can be manipulated by the people capturing them. Don't rely simply upon metrics to
            manage a project.
        </div>
    </li>
</ul>
<p>
    Effective metrics programs can be challenging to implement, though typically not because of the statistics and complex
    analysis often associated with metrics. Rather, the challenge lies in understanding which metrics add value to the
    project and to the company, and which procedures are most efficient for collecting and using these metrics.
</p>
<p>
    Consider implementing only a handful metrics. Importantly, do not collect metrics unless they help contribute to a goal
    of improving a defined area of your software development process. If you will not act on a metric, do not collect it.
    It is much more important to focus on a small number of metrics that are important to what you are trying to achieve
    right now, versus a larger set of metrics that may be "good to track".&nbsp;
</p>
<h3>
    <font size="5">Common Metrics</font>
</h3>
<p>
    Below are some common measures and associated metrics used in software development projects. These metrics help teams
    communicate, identify and correct problems early, make informed trade-offs, and tune estimations. Example of metrics
    coverage areas are listed below.
</p>
<ul>
    <li>
        Software quality 
        <ul>
            <li>
                Defect backlog: Number of defects discovered respectively resolved per iteration
            </li>
            <li>
                Test case coverage: Number of test cases executed over total number of test cases
            </li>
            <li>
                Code coverage: % of code that have been tested
            </li>
        </ul>
    </li>
    <li>
        Development productivity 
        <ul>
            <li>
                Velocity: Number of delivered points by iteration (see <a class="elementLink" href="./../../../core.mgmt.common.extend_supp/guidances/guidelines/agile_estimation_A4EF42B3.html" guid="_CGHskBEdEdqY7JB6N6CW2w">Agile Estimation</a>)
            </li>
        </ul>
    </li>
    <li>
        Development process effectiveness 
        <ul>
            <li>
                Responsiveness to quality issues: Number of defects discovered versus resolved per iteration
            </li>
            <li>
                Responsiveness to process improvement proposal: Number of process enhancements proposed versus implemented
            </li>
        </ul>
    </li>
    <li>
        Cost and schedule estimate and variance 
        <ul>
            <li>
                Effort: Actual effort spent per iteration
            </li>
            <li>
                Cost: Cost per iteration
            </li>
            <li>
                Effort remaining: Track&nbsp;project burndown&nbsp;
            </li>
        </ul>
    </li>
</ul>
<p>
    There are many other measures and metrics that may make sense, based on what you are trying to accomplish. For example,
    if you want to measure the quality of your architecture, you may choose to collect metrics related to coupling between
    different software packages (groups of related classes) by measuring extensibility, dependency, and responsibility of
    each package.
</p></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
